home *** CD-ROM | disk | FTP | other *** search
- $IN = shift;
- open(IN) || die "$! $IN";
- print "older tree: $IN\n";
- $i=0; while (<IN>) {
- s/[\r\n]+$//g; s/ +\f/\f/g; ###$_ = substr($_,2);
- $xa{$_} = 1+$i; $ya[$i] = $_; $i++;
- } close IN;
-
- $IN = shift;
- open(IN) || die "$! $IN";
- print "newer tree: $IN\n";
- $i=0; while (<IN>) {
- s/[\r\n]+$//g; s/ +\f/\f/g;
- $saver[$i] = $_; $i++;
- } close IN;
-
-
- $OUT = ">new.tre";
- open(OUT) || die "$! $OUT";
- print "new tree: $OUT\n";
-
- $news=0;
- #relies on unique items/lines! if same line is repeated, result is unpredictable
- for ($ia=$ib=0; $ib<=$#saver && $ia<=$#ya; $ib++) {
- $n = $xa{ $saver[$ib] };
- if ($n) { #(!) it is 1 more
- for ( ;$ia<$n;$ia++) { print OUT "$ya[$ia]\n"; }
- ($level,$mail,$name,$mssg,$subj,$date) = split( "\f", $saver[$ib]);
- undef $longnames{$mssg}; #remove available messages
- } else {
- print OUT "$saver[$ib]\n";
- $news++;
- }
- }
- for ( ;$ib<=$#saver;$ib++) { print OUT "$saver[$ib]\n"; $news++; }
- for ( ;$ia<=$#ya;$ia++) { print OUT "$ya[$ia]\n";
- ($level,$mail,$name,$mssg,$subj,$date) = split( "\f", $ya[$ia]);
- undef $longnames{$mssg}; #remove available messages
- }
- close OUT;
- print "new messages ($news)\n";
-